package byx.container.annotation.ConditionalOnTest.b;

import byx.container.annotation.annotation.ConditionalOn;
import byx.container.annotation.annotation.Id;
import byx.container.annotation.annotation.Register;

@Register
public class Config {
    @Register
    public A a() {
        return new A();
    }

    @ConditionalOn(A.class)
    public B b(A a) {
        return new B(a);
    }

    @ConditionalOn(B.class)
    @Id("ccccc")
    public C c(B b) {
        return new C(b);
    }

    @ConditionalOn({B.class, C.class})
    public D d() {
        return new D();
    }

    @ConditionalOn(F.class)
    public E e() {
        return new E();
    }

    @ConditionalOn(E.class)
    public F f() {
        return new F();
    }

    @ConditionalOn(G.class)
    public G g() {
        return new G();
    }
}
